<?php
	session_start();
	class OrganizacionesManager{
		var $table = "organizaciones";
	
		public static function ProcessOrganizacion(
		$nombre, $razon_social, $icono_actividad,$actividad, $detalle_actividad, $direccion, $telefono, $mail, $web, $categoria, $thumb_programa, $icono_programa, $programa, $detalle_programa, $sub_programa, $detalle_sub_programa, $zona, $region, $provincia, $ciudad, $inicio_actividades, $periodo_actividades, $procesos_certificados, $organismo_certificador, $vencimiento_certificacion, $texto_experiencial, $imagen, $video_file, $video_thumb, $video_detalle, $identificador){
			$id_actividad = ActividadesManager::GetIdByName($actividad, $icono_actividad);
			$id_categoria = CategoriasManager::GetIdByName($categoria);
			$id_region = RegionesManager::GetIdByName($region);
			$id_provincia = ProvinciasManager::GetIdByName($id_region, $provincia);
			$id_ciudad = CiudadesManager::GetIdByName($id_provincia, $ciudad);
			$id_programa = ProgramasManager::GetIdByName($id_categoria, $programa, $detalle_programa, $icono_programa, $thumb_programa);
			$id_sub_programa= SubProgramasManager::GetIdByName($id_programa, $sub_programa, $detalle_sub_programa);

			
			$algo = self::Add(
				$nombre,
				$razon_social,
				$id_actividad,
				$direccion,
				$telefono,
				$mail,
				$web,
				$id_categoria,
				$id_programa,
				$id_sub_programa,
				$zona,
				$detalle_actividad,
				$id_region,
				$id_provincia,
				$id_ciudad,
				$inicio_actividades,
				$periodo_actividades,
				$procesos_certificados,
				$organismo_certificador,
				$vencimiento_certificacion,
				$texto_experiencial, 
				$video_nombre,
				$video_detalle,
				$imagen,
				$video_file,
				$video_thumb,
				$identificador

			);
			// ACA DEBE IR EL TRATAMIENTO DE ARCHIVOS
			// ICONO_ACTIVIDADES, ICONO_PROGRAMA, THUMB_PROGRAMA, FILE_VIDEO, THUMB_VIDEO, IMAGEN 
			
			echo 'Add: '. $algo->id.'<br>';
		
		}
		
		public static function Add($nombre, $razon_social, $id_actividad = "null", $direccion, $telefono, $mail, $web, $id_categoria = "null", $id_programa = "null", $id_sub_programa = "null",$zona,  $detalle_actividad, $id_region = "null", $id_provincia = "null", $id_ciudad = "null", $inicio_actividades, $periodo_actividades, $procesos_certificados, $organismo_certificador,$vencimiento_certificacion, $texto_experiencial,$video_nombre, $video_detalle, $imagen,$video_file, $video_thumb, $identificador = 0){
			$db = DataBase::getInstance();

			$db->execute("INSERT INTO organizaciones (nombre, razon_social, id_actividad, direccion, telefono, mail, web, id_categoria, id_programa, id_sub_programa, zona, detalle_actividad, id_region, id_provincia, id_ciudad, inicio_actividades, periodo_actividades, procesos_certificados, organismo_certificador, vencimiento_certificacion, texto_experiencial,video_nombre, video_detalle, imagen, video_file, video_thumb, identificador) VALUES (
						'".$nombre."','".$razon_social."',".$id_actividad.",'".$direccion."','".$telefono."','".$mail."','".$web."',
						".$id_categoria.",".$id_programa.",".$id_sub_programa.",'".$zona."','".$detalle_actividad."',".$id_region.",".$id_provincia.",".$id_ciudad.",'".$inicio_actividades."','".$periodo_actividades."','".$procesos_certificados."','".$organismo_certificador."', '". $vencimiento_certificacion."','".$texto_experiencial."','".$video_nombre."','".$video_detalle."','".$imagen."','".$video_file."','".$video_thumb."',".$identificador.");");
			$last_inserted_id = $db->last_inserted_id();


			$n_imagen = FileManager::CopyFile($imagen, "dir_org_img_". $last_inserted_id);
			$n_video = FileManager::CopyFile($video_file, "dir_org_vid_". $last_inserted_id);
			$n_video_thumb = FileManager::CopyFile($video_thumb, "dir_org_vth_". $last_inserted_id);

			self::UpdateImages($last_inserted_id,$n_imagen, $n_video, $n_video_thumb);

			return self::Get($last_inserted_id);
		}
		public static function UpdateImages($id, $imagen, $video_file, $video_thumb){
			$db = DataBase::getInstance();
			$txt = "";
			if($imagen != "")
				$txt = $txt. " imagen = '".$imagen."',";

			if($video_file != "")
				$txt = $txt. " video_file = '".$video_file."',";


			if($video_thumb != "")
				$txt = $txt." video_thumb = '".$video_thumb."',";

			if(strlen($txt)>0)
			$db->execute("UPDATE organizaciones SET 
				".substr($txt, 0,(strlen($txt)-1))."
			WHERE id_organizacion = ".$id);
		}


		public static function Update($id,$nombre, $razon_social, $id_actividad = "null", $direccion, $telefono, $mail, $web, $id_categoria = "null", $id_programa = "null", $id_sub_programa = "null",$zona,  $detalle_actividad, $id_region = "null", $id_provincia = "null", $id_ciudad = "null", $inicio_actividades, $periodo_actividades, $procesos_certificados, $organismo_certificador,$vencimiento_certificacion, $texto_experiencial,$video_nombre, $video_detalle, $imagen,$video_file,$video_thumb){

			$db = DataBase::getInstance();
			
			$n_imagen = FileManager::CopyFile($imagen, "dir_org_img_". $id);
			$n_video = FileManager::CopyFile($video_file, "dir_org_vid_". $id);
			$n_video_thumb = FileManager::CopyFile($video_thumb, "dir_org_vth_". $id);

			self::UpdateImages($id,$n_imagen, $n_video, $n_video_thumb);


				$db->execute("UPDATE organizaciones SET 
				nombre = '".$nombre."', 
				razon_social = '".$razon_social."', 
				id_actividad= ".$id_actividad.", 
				direccion = '".$direccion."', 
				telefono = '".$telefono."', 
				mail = '".$mail."', 
				web = '".$web."',
				id_categoria = ".$id_categoria.", 
				id_programa = ".$id_programa.", 
				id_sub_programa = ".$id_sub_programa.", 
				zona = '".$zona."', 
				detalle_actividad = '".$detalle_actividad."', 
				id_region = ".$id_region.", 
				id_provincia = ".$id_provincia.", 
				id_ciudad = ".$id_ciudad.", 
				inicio_actividades = '".$inicio_actividades."', 
				periodo_actividades = '".$periodo_actividades."', 
				procesos_certificados = '".$procesos_certificados."', 
				organismo_certificador = '".$organismo_certificador."', 
				vencimiento_certificacion = '".$vencimiento_certificacion."', 
				texto_experiencial = '".$texto_experiencial."',
				video_nombre = '".$video_nombre."',
				video_detalle = '".$video_detalle."'
				where id_organizacion = ". $id);

		}
		public static function GetForXml(){		
			$db = DataBase::getInstance();
			$db->setQuery("
					SELECT
					o.id_organizacion,
					o.nombre,
					o.razon_social,
					o.id_actividad,
					a.nombre nombre_actividad,
					IF(a.icono <> '',concat('".getPath()."',a.icono),a.icono)icono_actividad,
					o.direccion,
					o.telefono,
					o.mail,
					o.web,
					o.id_categoria,
					c.nombre nombre_categoria,
					o.id_programa,
					p.nombre nombre_programa,
					o.id_sub_programa,
					sp.nombre nombre_sub_programa,
					o.detalle_actividad,
					IF(o.imagen <> '',concat('".getPath()."',o.imagen),o.imagen)imagen,
					o.id_region,
					r.nombre nombre_region,
					o.id_provincia,
					pr.nombre nombre_provincia,
					o.id_ciudad,
					ci.nombre nombre_ciudad,
					o.inicio_actividades,
					o.periodo_actividades,
					o.procesos_certificados,
					o.organismo_certificador,
					o.vencimiento_certificacion,
					o.texto_experiencial,
					o.zona,
					IF(o.video_file <> '',concat('".getPath()."',o.video_file),video_file)video_file,
					o.video_detalle,
					o.video_nombre,
					IF(o.video_thumb <> '',concat('".getPath()."',o.video_thumb),o.video_thumb) video_thumb
					FROM organizaciones o
					LEFT JOIN actividades a ON o.id_actividad = a.id_actividad
					LEFT JOIN categorias c ON o.id_categoria = c.id_categoria
					LEFT JOIN programas p ON o.id_programa = p.id_programa 
					LEFT JOIN sub_programas sp ON o.id_sub_programa = sp.id_sub_programa
					LEFT JOIN regiones r ON o.id_region = r.id_region
					LEFT JOIN provincias pr ON o.id_provincia = pr.id_provincia
					LEFT JOIN ciudades ci ON o.id_ciudad = ci.id_ciudad

			");
			$list = $db->loadObjectList();
			return $list;
		}

		
		public static function GetZonasByPrograma($id){
			$db = DataBase::getInstance();
			$db->setQuery("
				SELECT zona FROM organizaciones
				WHERE id_programa = ".$id."
				GROUP BY id_programa,zona

				ORDER BY zona ASC
				");
			$list = $db->loadObjectList();
			return $list;
		}
		
		public static function GetZonasBySubPrograma($id){
			$db = DataBase::getInstance();
			$db->setQuery("
				SELECT zona FROM organizaciones
				WHERE id_sub_programa = ".$id."
				GROUP BY id_programa,id_sub_programa, zona

				ORDER BY zona ASC
				");
			$list = $db->loadObjectList();
			return $list;
		}


		public static function GetAll(){
			$db = DataBase::getInstance();
			$db->setQuery("
				SELECT 	 o.id_organizacion id, CONVERT(o.nombre USING utf8) nombre,o.zona, o.razon_social, o.id_actividad, o.direccion, o.telefono, o.mail, o.web,
						o.id_categoria, o.id_programa, o.id_sub_programa, o.detalle_actividad, o.id_region, o.id_provincia, o.id_ciudad,
						o.inicio_actividades, o.periodo_actividades, o.procesos_certificados, o.organismo_certificador,o.vencimiento_certificacion,
						o.texto_experiencial, o.imagen,o.video_file,o.video_thumb, o.video_nombre, o.video_detalle,
						a.nombre nombre_actividad, c.nombre nombre_categoria, p.nombre nombre_programa, sp.nombre nombre_sub_programa, r.nombre nombre_region, pr.nombre nombre_provincia, ci.nombre nombre_ciudad
				FROM organizaciones o
				LEFT JOIN actividades a ON a.id_actividad = o.id_actividad
				LEFT JOIN categorias c ON c.id_categoria = o.id_categoria
				LEFT JOIN programas p ON p.id_programa= o.id_programa
				LEFT JOIN sub_programas sp ON sp.id_sub_programa = o.id_sub_programa
				LEFT JOIN regiones r ON r.id_region = o.id_region
				LEFT JOIN provincias pr ON pr.id_provincia = o.id_provincia
				LEFT JOIN ciudades ci ON ci.id_ciudad = o.id_ciudad


				ORDER BY o.nombre ASC ");
			$list = $db->loadObjectList();
			return $list;
		}
		
		public static function Get($id){
			$db = DataBase::getInstance();
			$db->setQuery("
				SELECT 	o.id_organizacion id, o.nombre,o.zona, o.razon_social, o.id_actividad, o.direccion, o.telefono, o.mail, o.web,
						o.id_categoria, o.id_programa, o.id_sub_programa, o.detalle_actividad, o.id_region, o.id_provincia, o.id_ciudad,
						o.inicio_actividades, o.periodo_actividades, o.procesos_certificados, o.organismo_certificador,o.vencimiento_certificacion,
						o.texto_experiencial, o.imagen,o.video_file, o.video_thumb, o.video_nombre, o.video_detalle,
						a.nombre nombre_actividad, c.nombre nombre_categoria, p.nombre nombre_programa, sp.nombre nombre_sub_programa, r.nombre nombre_region, pr.nombre nombre_provincia, ci.nombre nombre_ciudad
				FROM organizaciones o
				LEFT JOIN actividades a ON a.id_actividad = o.id_actividad
				LEFT JOIN categorias c ON c.id_categoria = o.id_categoria
				LEFT JOIN programas p ON p.id_programa= o.id_programa
				LEFT JOIN sub_programas sp ON sp.id_sub_programa = o.id_sub_programa
				LEFT JOIN regiones r ON r.id_region = o.id_region
				LEFT JOIN provincias pr ON pr.id_provincia = o.id_provincia
				LEFT JOIN ciudades ci ON ci.id_ciudad = o.id_ciudad
				WHERE id_organizacion = ". $id );
			$list = $db->loadObjectList();
			return $list[0];
		}

		public static function Delete($id){
			$db = DataBase::getInstance();
			$db->execute("DELETE FROM organizaciones WHERE id_organizacion = ".$id);
		}		
	}


?>